shell 练习-带选项的用户脚本

要求如下:

  • 只支持三个选项 ‘–del’ ‘–add’ –help输入其他选项报错。
  • 使用‘–add’需要验证用户名是否存在,存在则反馈存在。且不添加。 不存在则创建该用户,切添加与该用户名相同的密码。并且反馈。
  • 使用‘–del’ 需要验证用户名是否存在,存在则删除用户及其家目录。不存在则反馈该用户不存在。
  • –help 选项反馈出使用方法
  • 支持以,分隔 一次删除多个或者添加多个用户。
  • 能用echo $? 检测脚本执行情况 成功删除或者添加为0,报错信息为其他数字。
  • 能以,分割。一次性添加或者 删除多个用户。 例如 adddel.sh –add user1,user2,user3…….
  • 不允许存在明显bug。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
#written by aming.
if [ $# -eq 0 -o $# -gt 2 ]
then
echo "use $0 --add username or $0 --del username or $0 --help."
exit 1
fi
case $1 in
--add)
n=0
for u in `echo $2|sed 's/,/ /g'`; do
if awk -F: '{print $1}' /etc/passwd |grep -qw "$u"
then
echo "The user $u exist."
else
useradd $u
echo -e "$u\n$u"|passwd $u >/dev/null 2>&1
echo "The user $u added successfully."
n=$[$n+1]
fi
done
if [ $n -eq 0 ]; then
exit 2
fi
;;
--del)
n=0
for u in `echo $2|sed 's/,/ /g'`; do
if awk -F: '{print $1}' /etc/passwd|grep -qw "$u"
then
userdel -r $u
echo "The user $u deleted successfully."
n=$[$n+1]
else
echo "The user $u not exist."
fi
done
if [ $n -eq 0 ]; then
exit 3
fi
;;
--help)
echo -e "--add can add user,and the passwd is the same as username.
It can add multiuser such as --add user1,user2,user3..."
echo "--del cat delete user.It can delete user such as --del user1,user2,user3..."
;;
*)
echo "use $0 --add username or $0 --del username or $0 --help."
exit 1
;;
esac